# Как из поля со списком сделать строки

Предположим что у нас есть поле, которое содержит в себе список значений, а нам необходимо создать из него строки, пример значений: "тыква, банан, кокос", значение раделителя вынесено в отдельную переменную для упрощения кода

Решение:
```
// разделитель
SET varDelimiter = ',';

tablename:
LOAD * INLINE
[id | список
1 | тыква, банан, кокос
2 | рябчик, труба, дверь
] (delimiter is '|');

newtable:
LOAD
    id
    , SUBFIELD(список, '$(varDelimiter)') as значение
RESIDENT tablename;

DROP TABLE tablename;
```
результат
```
id, значение
1, тыква
1, банан
1, кокос
2, рябчик
2, труба
2, дверь
```

# Разделяем строку с разделителем на 2 отдельных поля

Предположим что у нас есть какое то поле id, и поле в таком виде: "отдел:тыква, сорт:банан, изделие:кокос"

Нам необходимо разделить второе поле на 2 других, но при этом у нас строка состоит из названий параметров и значений этих параметров. Т.е. нужно получить данные в таком виде:
```
id, "тыква" as param_value , "отдел" as param_name
id, "банан" as param_value , "сорт" as param_name
id, "кокос" as param_value , "изделие" as param_name
```
Делается это следующим образом

```
SET varDelimiter = ',';
SET varDelimiter2 = ':';

tablename:
LOAD * INLINE
[id | список
1 | отдел:тыква, сорт:банан, изделие:кокос
2 | отдел:рябчик, сорт:труба, изделие:дверь
] (delimiter is '|');

newtable:
LOAD
	id
    , SubField(строка, '$(varDelimiter2)',1) as param_name
    , SubField(строка, '$(varDelimiter2)',2) as param_value
    ;
LOAD
    id
    , SUBFIELD(список, '$(varDelimiter)') as строка
RESIDENT tablename;

DROP TABLE tablename;
```

Результат

![image](https://user-images.githubusercontent.com/8188055/189704504-eb483c21-a8db-4d03-8ad2-55dfa651272b.png)
